本人菜鸟一枚,调试程序时发现下面的程序只要用free()来释放结构体指针就出错,百思不得其解,望大师指正!非常感谢啦!
注:本人用的是VC6.0。自己写的C程序,私心揣测难道是结构体指针特殊一点,或者我释放的方式不对~
补充:C-Free 5.0上选择mingw5调试则没有问题!到底哪里有问题?![图片说明](https://img-ask.csdn.net/upload/201604/15/1460689437_553769.jpg)
#include
#include
#include
struct Particle{
int age;
double money;
double famly[4];
};//定义一个结构体变量
int main()
{ int PM=5,i,j;
double *ptr=(double *)calloc(PM,sizeof(double));
struct Particle *swarm=(struct Particle *)calloc(PM,sizeof(struct Particle));
if(swarm==NULL)
{printf("给swarm申请内存失败!\n");
exit(1);//异常退出
}
else printf("给swarm申请内存成功!\n");
for(i=0;iage=2*i;
swarm->money=3*i+0.55;
printf("swarm[%d]: age=%d,money=%lf ",i,swarm->age,swarm->money);
for(j=0;jfamly[j]=1.5*j;printf("%lf ,",swarm->famly[j]);}
printf("\n");
}
printf("\n");//对double型数组赋值并输出
for(i=0;i |